package apis

import (
	"mallgo/internal/common/request"
	"mallgo/internal/common/response"
	modelRequest "mallgo/internal/resources/product/api/domain/request"
)

type ProductApi interface {
	// Create 创建新产品。该方法接收一个产品请求对象，其中包含需要创建的产品的信息。
	// 参数:
	//   request - 包含新产品信息的ProductRequest对象。
	Create(request *modelRequest.ProductRequest) *response.ResponseObject

	// Update 更新现有产品信息。该方法接收一个产品请求对象，其中包含需要更新的产品的信息。
	// 参数:
	//   request - 包含待更新产品信息的ProductRequest对象。
	Update(request *modelRequest.ProductRequest) *response.ResponseObject

	// Delete 删除指定产品。该方法接收一个产品请求对象，其中包含需要删除的产品的信息。
	// 参数:
	//   request - 包含待删除产品信息的ProductRequest对象。
	Delete(request *modelRequest.ProductRequest) *response.ResponseObject

	// Search 搜索产品。该方法接收一个产品搜索对象，其中包含搜索条件。
	// 参数:
	//   request - 包含产品搜索条件的ProductSearch对象。
	Search(request *modelRequest.ProductSearch) *response.ResponseObject

	// View 查看指定产品的详细信息。该方法接收一个产品请求对象，其中包含需要查看的产品的信息。
	// 参数:
	//   request - 包含待查看产品信息的ProductRequest对象。
	View(request *request.ViewRequest) *response.ResponseObject
}
